Reading Assignment 8
MPI
Write your answers in a PDF and upload the document on Gradescope for submission. The due date is given on Gradescope. Each question is worth 10 points.
Please watch the videos and slides starting from video “37 MPI Introduction” to video “50 MPI Communicators” (Module 8 and 9).
- Define the acronyms SIMD and SPMD.
- Explain what
MPI_ANY_SOURCE
does. - What are tags used for in
MPI_Send
andMPI_Recv
? - Explain what the MPI functions
MPI_Allgather
andMPI_Alltoall
do. - Explain what the following command does:
mpirun --bind-to hwthread --map-by core ./mpi_hello
- Explain the difference between
MPI_Recv
with and without buffer. - Describe a scenario in which an MPI program deadlocks.
- Explain the role of
MPI_Request
when doingMPI_Isend
andMPI_Irecv
. - Is there a performance difference between an MPI matrix-vector product with row partitioning and column partitioning?
- What is the speed-up of a program according to Amdahl’s Law?
- What is the speed-up of a program according to Gustafson’s Law?
- How does the efficiency typically change as you increase the number of processes?
- What is the running time of an optimal all-to-all personalized collective operation with a hypercube network?
- In a matrix-matrix product, the total number of operations is $O(n^3)$. Assuming we have $p$ MPI processes, the total number of flops per process is $O(n^3/p)$. If we use the Dekel-Nassimi-Sahni algorithm, accounting for communications, we have the following running times:
Compute the iso-efficiency function $p(n)$ of this algorithm.
Hint: slide 60 will be useful.
- Explain what the MPI function
MPI_Group_incl
does.